package com.suep.data_analysis.dto;

import lombok.*;
import java.util.*;

/**
 * 用户配置详细信息DTO
 */
@Data
public class UserConfigDetailDto {
    private String configId;          // 配置唯一ID
    private String userId;            // 用户ID

    // ========== 角色信息 ==========
    private AgentDto agent;           // 代理人信息
    
    // 角色基础属性
    private Double baseHp;            // 基础生命值
    private Double baseAtk;           // 基础攻击力
    private Double baseDef;           // 基础防御力
    private Double baseImpact;        // 基础冲击力
    private Double critRate;          // 暴击率
    private Double critDmg;           // 暴击伤害
    private Integer baseControl;      // 基础异常掌控
    private Integer mastery;          // 异常精通
    private Double penetration;       // 穿透率
    private Double baseEnergyRegen;   // 基础能量自动回复

    // ========== 音擎信息 ==========
    private String armamentId;        // 音擎ID
    private String armamentName;      // 音擎名称
    private String armamentType;      // 音擎类别
    private Integer armamentRarity;   // 音擎稀有度
    private Double armamentBaseAtk;   // 音擎基础攻击力
    private Double armamentExtraBonus; // 音擎副属性

    // ========== 驱动盘情况 ==========
    // 驱动盘两件套属性
    private Map<String, Object> setBonus;           // 驱动盘两件套属性
    private Map<String, Object> coreSkillBonus;     // 核心技属性加成

    // 驱动盘主属性（1-6号）
    private Map<String, Object> driveMainAttr1;     // 1号驱动盘主属性
    private Map<String, Object> driveMainAttr2;     // 2号驱动盘主属性
    private Map<String, Object> driveMainAttr3;     // 3号驱动盘主属性
    private Map<String, Object> driveMainAttr4;     // 4号驱动盘主属性
    private Map<String, Object> driveMainAttr5;     // 5号驱动盘主属性
    private Map<String, Object> driveMainAttr6;     // 6号驱动盘主属性

    // 驱动盘随机属性（1-6号）
    private Map<String, Object> driveRandomAttr1;   // 1号驱动盘随机属性
    private Map<String, Object> driveRandomAttr2;   // 2号驱动盘随机属性
    private Map<String, Object> driveRandomAttr3;   // 3号驱动盘随机属性
    private Map<String, Object> driveRandomAttr4;   // 4号驱动盘随机属性
    private Map<String, Object> driveRandomAttr5;   // 5号驱动盘随机属性
    private Map<String, Object> driveRandomAttr6;   // 6号驱动盘随机属性

    // ========== 技能信息 ==========
    private List<AgentSkillsDto> skills;            // 代理人技能列表
}